The ability to recognize various types of ink objects is important for users to be able to draw directly on their computers using ink input or ink notes. Current hardware and software may be able to capture ink representing handwriting reasonably well but is currently unable to similarly recognize and represent the meaning of diagrams, charts, lists and tables hand-drawn in ink input. As a result, users instead use menu-based application programs to create drawings of ink objects such as diagrams and charts. Various diagrams, charts, lists, and tables may be presented by such application programs for a user to select and copy onto a drawing grid or into a document for editing. For example, a drawing application may include a menu option for inserting a diagram, organization chart, or table in a document for editing.
Research focused on recognition of hand-drawn objects has yielded marginal results to date. For instance, incremental recognition algorithms have been used that may recognize simple geometric shapes such as a circle or a box from a specific number of strokes made in a particular order. However, such incremental algorithms rely on stroke order and/or assume a particular number of strokes in order to recognize a particular hand-drawn object. Such an approach fails to be robust for several reasons. For one, none of the incremental algorithms solves the grouping problem of deciding which collection of strokes belongs together because those strokes represent a specific shape or hand-drawn object such as a chart or list. Without the ability to group strokes together that belong to a shape or hand-drawn object, incremental algorithms may not accommodate multi-stroke shapes or hand-drawn objects such as a diagram, chart, list, table, and so forth.
What is needed is a way for recognizing and representing the meaning of hand-drawn objects that is insensitive to stroke input order and/or the number of strokes required to form any given drawing object. Any such system and method should be able to detect multi-stroke hand-drawn ink objects and be able to decide which collection of strokes belong together that represent different ink objects such as a diagram, chart, list, table and so forth. Furthermore, such a system and method should be able to provide a way to edit recognized ink objects.